<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>强制类型转换-Number</title>
</head>
<body>
    
</body>
</html>
<script>
    /*
        将其他的数据类型 转换为 Number
        
            转换方式一：
                使用Number()函数 //和String()函数用法一样
                    - 字符串  --> 数字
                        1.如果是纯数字字符串，则将其直接转换为数字
                        2.如果字符串中含有非数字内容，则转换为 NaN
                        3.如果字符串是一个空串 var a = ""; 
                          或者是一个全是空格的字符串，则转换为 0
                    
                    - 布尔   --> 数字
                        true    返回1
                        false   返回0

                    - null  --> 数字  0

                    - undefined --> 数字  NaN
            转换方式二：
                - 这种方式专门用来对付字符串
                - parseInt() 把一个字符串转换为一个整数
                - parseFloat() 把一个字符串转换为一个浮点数

    */
    var a = "123"; 
    // var a = "abc"; -typeof为Number -值为NaN

    //调用Number()函数 来将 a 转换为 Number类型
    a = Number(a);

    var b = true;
    var c = false;
    var d = null;
    var e = undefined;
    
    b = Number(b);
    c = Number(c);
    d = Number(d);
    e = Number(e);

    //调用parseInt()函数将f转换为Number
        /*
            parseInt()可以将一个字符串中的 有效的 整数内容取出来
            然后转换为Number
        */
    //  f = parseInt(f);   各值的结果 
        var f = "12p35px";    //== 12
        // f = "b12p35px";      == NaN
        // f = "126.2p35px";    == 126
        //f = Number(f); 
        f = parseInt(f);

        /*
            parseFloat()的作用和parseInt()类似，不同的时它可以获得有效的小数
        */
    //  g = parseFloat(g); 各值的结果
        var g = "123.456px";        //== 123.456
        // g = "123.456.789px";   == 123.456
        // g = "a123.456px";      == NaN
        g = parseFloat(g);

        /*
            如果对非String使用parseInt()或parseFloat()
            他会先将其转换为String ，然后再操作 
        */
        //也可利用parseInt来取整
        var z = 1234.56;
        z = parseInt(z);

    //  h = parseInt(h); 
        var h = true;
        h = parseInt(h); // == NaN


    console.log(typeof a);
    console.log(a);

    console.log(typeof b);
    console.log(b);

    console.log(typeof c);
    console.log(c);

    console.log(typeof d);
    console.log(d);

    console.log(typeof e);
    console.log(e);

    console.log(typeof f);
    console.log(f);

    console.log(typeof g);
    console.log(g);

    console.log(typeof h);
    console.log(h);

    console.log(typeof z);
    console.log(z);
</script>